abstract class A
{
    abstract public void f();
}
abstract class B
{
    public void f()
    {

    }
}
//    class C
//    {
//        abstract public void f();
//    }
//    class D
//    {
//        abstract public void f()
//        {
//            
//        }
//    }
//    class D
//    {
//        public void f();
//    }
public class TestAbstract
{
    public static void main(String[] args)
    {

    }
}
/*
error:
TestAbstract.java:12: 错误: C不是抽象的, 并且未覆盖C中的抽象方法f()
class C
^
1 个错误

TestAbstract.java:16: 错误: D不是抽象的, 并且未覆盖D中的抽象方法f()
class D
^
TestAbstract.java:18: 错误: 抽象方法不能有主体
    abstract public void f()
                         ^
2 个错误

TestAbstract.java:25: 错误: 缺少方法主体, 或声明抽象
    public void f();
                ^
1 个错误

证明了：
抽象的类里面可以有不是抽象的方法
但是有抽象方法的类一定是抽象的类；
抽象方法和类前面一定要 abstract 修饰
*/